import os 

#文件切割函数
def cut_file(filename,size=1,BKBM='KB'): #获取三个参数，一个是文件名，一个是切割大小，一个是单位
    if BKBM == 'B': #将单位的权重换算给lon
        lon = 1
    elif BKBM == 'KB':
        lon = 1024
    elif BKBM == 'MB':
        lon = 1048576
    else:
        print(BKBM+',该单位未考虑')
    with open(os.path.dirname(__file__)+'\\'+filename,'rb') as f: #os.path.dirname(__file__)获取代码所在文件目录
        part = 1 #文件名顺序
        while True:
            num = f.read(lon*size)
            if not num:
                break
            filename_save = f'{part}.txt'
            with open(os.path.dirname(__file__)+'\\'+filename_save,'wb') as ff:
                ff.write(num)
            ff.close()
            part += 1
    f.close()
    print('\n文件切割完毕，文件名：'+filename+'\n路径：'+os.path.dirname(__file__)+'\n切割后子文件大小：'+str(size)+BKBM+' 文件个数：'+str(part))
    
# 文件合并函数
def merge_file(filename):
    with open(os.path.dirname(__file__)+f'\{filename}.txt','wb') as f:
        filename_lst = os.listdir(os.path.dirname(__file__)) #os.listdir()获取参数路径下的所有文件，返回一个文件名列表
        lon = len(filename_lst)
        for i in range(lon):
            filename = f'{i}.txt'
            if os.path.exists(os.path.dirname(__file__)+'\\'+filename):     #if os.path.exists(file_path): 判断路径下文件是否存在
                with open(os.path.dirname(__file__)+'\\'+filename,'rb') as ff:
                    f.write(ff.read())
                ff.close()
    f.close()

# 文件压缩（霍夫曼编码）
    
# 文件加解密（恩格玛密码机）



if __name__ == '__main__':
    # cut_file('text.txt',200,'KB') #测试
    # merge_file('test') 
    pass